// noinspection JSUnresolvedReference /** * Field Google Map */ /* global jQuery, document, redux_change, redux, google */ (function ( $ ) { 'use strict'; redux.field_objects = redux.field_objects || {}; redux.field_objects.google_maps = redux.field_objects.google_maps || {}; /* LIBRARY INIT */ redux.field_objects.google_maps.init = function ( selector ) { if ( ! selector ) { selector = $( document ).find( '.redux-group-tab:visible' ).find( '.redux-container-google_maps:visible' ); } $( selector ).each( function ( i ) { let delayRender; const el = $( this ); let parent = el; if ( ! el.hasClass( 'redux-field-container' ) ) { parent = el.parents( '.redux-field-container:first' ); } if ( parent.is( ':hidden' ) ) { return; } if ( parent.hasClass( 'redux-field-init' ) ) { parent.removeClass( 'redux-field-init' ); } else { return; } // Check for delay render, which is useful for calling a map // render after JavaScript load. delayRender = Boolean( el.find( '.redux_framework_google_maps' ).data( 'delay-render' ) ); // API Key button. redux.field_objects.google_maps.clickHandler( el ); // Init our maps. redux.field_objects.google_maps.initMap( el, i, delayRender ); } ); }; /* INIT MAP FUNCTION */ redux.field_objects.google_maps.initMap = async function ( el, idx, delayRender ) { let delayed; let scrollWheel; let streetView; let mapType; let address; let defLat; let defLong; let defaultZoom; let mapOptions; let geocoder; let g_autoComplete; let g_LatLng; let g_map; let noLatLng = false; // Pull the map class. const mapClass = el.find( '.redux_framework_google_maps' ); const containerID = mapClass.attr( 'id' ); const autocomplete = containerID + '_autocomplete'; const canvas = containerID + '_map_canvas'; const canvasId = $( '#' + canvas ); const latitude = containerID + '_latitude'; const longitude = containerID + '_longitude'; // Add map index to data attr. // Why, say we want to use delay_render, // and want to init the map later on. // You'd need the index number in the // event of multiple map instances. // This allows one to retrieve it // later. $( mapClass ).attr( 'data-idx', idx ); if ( true === delayRender ) { return; } // Map has been rendered, no need to process again. if ( $( '#' + containerID ).hasClass( 'rendered' ) ) { return; } // If a map is set to delay render and has been initiated // from another scrip, add the 'render' class so rendering // does not occur. // It messes things up. delayed = Boolean( mapClass.data( 'delay-render' ) ); if ( true === delayed ) { mapClass.addClass( 'rendered' ); } // Create the autocomplete object, restricting the search // to geographical location types. g_autoComplete = await google.maps.importLibrary( 'places' ); g_autoComplete = new google.maps.places.Autocomplete( document.getElementById( autocomplete ), {types: ['geocode']} ); // Data bindings. scrollWheel = Boolean( mapClass.data( 'scroll-wheel' ) ); streetView = Boolean( mapClass.data( 'street-view' ) ); mapType = Boolean( mapClass.data( 'map-type' ) ); address = mapClass.data( 'address' ); address = decodeURIComponent( address ); address = address.trim(); // Set default Lat/lng. defLat = canvasId.data( 'default-lat' ); defLong = canvasId.data( 'default-long' ); defaultZoom = canvasId.data( 'default-zoom' ); // Eval whether to set maps based on lat/lng or address. if ( '' !== address ) { if ( '' === defLat || '' === defLong ) { noLatLng = true; } } else { noLatLng = false; } // Can't have empty values, or the map API will complain. // Set default for the middle of the United States. defLat = defLat ? defLat : 39.11676722061108; defLong = defLong ? defLong : -100.47761000000003; if ( noLatLng ) { // If displaying a map based on an address. geocoder = new google.maps.Geocoder(); // Set up Geocode and pass address. geocoder.geocode( {'address': address}, function ( results, status ) { let latitude; let longitude; // Function results. if ( status === google.maps.GeocoderStatus.OK ) { // A good address was passed. g_LatLng = results[0].geometry.location; // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); // Get and set lat/long data. latitude = el.find( '#' + containerID + '_latitude' ); latitude.val( results[0].geometry.location.lat() ); longitude = el.find( '#' + containerID + '_longitude' ); longitude.val( results[0].geometry.location.lng() ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } else { // No data found, alert the user. alert( 'Geocode was not successful for the following reason: ' + status ); } } ); } else { // If displaying map based on an lat/lng. g_LatLng = new google.maps.LatLng( defLat, defLong ); // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, // Start off far unless an item is selected, set by php. streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create the map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } }; redux.field_objects.google_maps.renderControls = function ( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ) { let markerTooltip; let infoWindow; let g_marker; let geoAlert = mapClass.data( 'geo-alert' ); // Get HTML. const input = document.getElementById( autocomplete ); // Set objects into the map. g_map.controls[google.maps.ControlPosition.TOP_LEFT].push( input ); // Bind objects to the map. g_autoComplete = new google.maps.places.Autocomplete( input ); g_autoComplete.bindTo( 'bounds', g_map ); // Get the marker tooltip data. markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Create infoWindow. infoWindow = new google.maps.InfoWindow(); // Create marker. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), draggable: true, title: markerTooltip, animation: google.maps.Animation.DROP } ); geoAlert = decodeURIComponent( geoAlert ); // Place change. google.maps.event.addListener( g_autoComplete, 'place_changed', function () { let place; let address; let markerTooltip; infoWindow.close(); // Get place data. place = g_autoComplete.getPlace(); // Display alert if something went wrong. if ( ! place.geometry ) { window.alert( geoAlert ); return; } console.log( place.geometry.viewport ); // If the place has a geometry, then present it on a map. if ( place.geometry.viewport ) { g_map.fitBounds( place.geometry.viewport ); } else { g_map.setCenter( place.geometry.location ); g_map.setZoom( 17 ); // Why 17? Because it looks good. } markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Set the marker icon. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), title: markerTooltip, clickable: true, draggable: true, animation: google.maps.Animation.DROP } ); // Set marker position and display. g_marker.setPosition( place.geometry.location ); g_marker.setVisible( true ); // Form array of address components. address = ''; if ( place.address_components ) { address = [( place.address_components[0] && place.address_components[0].short_name || '' ), ( place.address_components[1] && place.address_components[1].short_name || '' ), ( place.address_components[2] && place.address_components[2].short_name || '' )].join( ' ' ); } // Set the default marker info window with address data. infoWindow.setContent( '
' + place.name + '
' + address ); infoWindow.open( g_map, g_marker ); // Run Geolocation. redux.field_objects.google_maps.geoLocate( g_autoComplete ); // Fill in address inputs. redux.field_objects.google_maps.fillInAddress( el, latitude, longitude, g_autoComplete ); } ); // Marker drag. google.maps.event.addListener( g_marker, 'drag', function ( event ) { document.getElementById( latitude ).value = event.latLng.lat(); document.getElementById( longitude ).value = event.latLng.lng(); } ); // End marker drag. google.maps.event.addListener( g_marker, 'dragend', function () { redux_change( el.find( '.redux_framework_google_maps' ) ); } ); // Zoom Changed. g_map.addListener( 'zoom_changed', function () { el.find( '.google_m_zoom_input' ).val( g_map.getZoom() ); } ); // Marker Info Window. infoWindow = new google.maps.InfoWindow(); google.maps.event.addListener( g_marker, 'click', function () { const marker_info = containerID + '_marker_info'; const infoValue = document.getElementById( marker_info ).value; if ( '' !== infoValue ) { infoWindow.setContent( infoValue ); infoWindow.open( g_map, g_marker ); } } ); }; /* FILL IN ADDRESS FUNCTION */ redux.field_objects.google_maps.fillInAddress = function ( el, latitude, longitude, g_autoComplete ) { // Set variables. const containerID = el.find( '.redux_framework_google_maps' ).attr( 'id' ); // What if someone only wants city, or state, ect... // gotta do it this way to check for the address! // Need to check each of the returned components to see what is returned. const componentForm = { street_number: 'short_name', route: 'long_name', locality: 'long_name', administrative_area_level_1: 'short_name', country: 'long_name', postal_code: 'short_name' }; // Get the place details from the autocomplete object. const place = g_autoComplete.getPlace(); let component; let i; let addressType; let _d_addressType; let val; let len; document.getElementById( latitude ).value = place.geometry.location.lat(); document.getElementById( longitude ).value = place.geometry.location.lng(); for ( component in componentForm ) { if ( componentForm.hasOwnProperty( component ) ) { // Push in the dynamic form element ID again. component = containerID + '_' + component; // Assign to proper place. document.getElementById( component ).value = ''; document.getElementById( component ).disabled = false; } } // Get each component of the address from the place details // and fill the corresponding field on the form. len = place.address_components.length; for ( i = 0; i < len; i += 1 ) { addressType = place.address_components[i].types[0]; if ( componentForm[addressType] ) { // Push in the dynamic form element ID again. _d_addressType = containerID + '_' + addressType; // Get the original. val = place.address_components[i][componentForm[addressType]]; // Assign to proper place. document.getElementById( _d_addressType ).value = val; } } }; redux.field_objects.google_maps.geoLocate = function ( g_autoComplete ) { if ( navigator.geolocation ) { navigator.geolocation.getCurrentPosition( function ( position ) { const geolocation = new google.maps.LatLng( position.coords.latitude, position.coords.longitude ); const circle = new google.maps.Circle( { center: geolocation, radius: position.coords.accuracy } ); g_autoComplete.setBounds( circle.getBounds() ); } ); } }; /* API BUTTON CLICK HANDLER */ redux.field_objects.google_maps.clickHandler = function ( el ) { // Find the API Key button and react on click. el.find( '.google_m_api_key_button' ).on( 'click', function () { // Find message wrapper. const wrapper = el.find( '.google_m_api_key_wrapper' ); if ( wrapper.is( ':visible' ) ) { // If the wrapper is visible, close it. wrapper.slideUp( 'fast', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } else { // If the wrapper is visible, open it. wrapper.slideDown( 'medium', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } } ); el.find( '.google_m_autocomplete' ).on( 'keypress', function ( e ) { if ( 13 === e.keyCode ) { e.preventDefault(); } } ); // Auto select autocomplete contents, // since Google doesn't do this inherently. el.find( '.google_m_autocomplete' ).on( 'click', function ( e ) { $( this ).trigger( 'focus' ); $( this ).trigger( 'select' ); e.preventDefault(); } ); }; } )( jQuery ); Gioca Gratuitamente al Casinò Online WinBay: La Migliore App per il Gioco in Italia – Orchid Group
Warning: Undefined variable $encoded_url in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Deprecated: base64_decode(): Passing null to parameter #1 ($string) of type string is deprecated in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Gioca Gratuitamente al Casinò Online WinBay: La Migliore App per il Gioco in Italia

WinBay: La Guida Definitiva al Casinò Online Gratuito in Italia

WinBay: la guida definitiva al casinò online gratuito in Italia. Scopri i migliori giochi da casinò senza rischiare un centesimo. Gioca a slot machine, blackjack, roulette e molto altro ancora. Non perdere l’occasione di vincere grandi premi senza spendere un solo euro. WinBay è il tuo punto di riferimento per il gioco d’azzardo online in Italia. Unisciti alla community di giocatori e inizia a vincere oggi stesso!

5 Consigli per Giocare al Casinò Online WinBay in Modo Sicuro e Divertente

Ecco qui 5 consigli per giocare al casinò online WinBay in modo sicuro e divertente: 1 Assicurati di scegliere un sito affidabile come WinBay, che utilizzi crittografia SSL per proteggere le tue informazioni personali e finanziarie. 2 Gestisci il tuo budget in modo responsabile, impostando limiti di deposito e prelevamento. 3 Approfitta dei bonus e delle promozioni offerte da WinBay, ma leggi sempre i termini e le condizioni prima di accettarli. 4 Conosci le regole dei giochi a cui stai giocando e sfrutta al meglio le strategie per aumentare le Download Winbay Casino App tue possibilità di vincita. 5 Gioca sempre in modo responsabile e divertiti, il gioco d’azzardo dovrebbe essere un hobby divertente e non una fonte di stress o di problemi finanziari.

Gioca Gratuitamente al Casinò Online WinBay: La Migliore App per il Gioco in Italia

Scopri i Giochi Gratuiti più Popolari sulla App WinBay Casino Italia

Benvenuti al casinò online WinBay Italia! Se stai cercando i giochi gratuiti più popolari, sei nel posto giusto. La nostra app offre una vasta selezione di giochi da casinò gratuiti, tra cui slot machine, blackjack, roulette e video poker.
Scopri i giochi più amati dai nostri utenti, come la slot machine “Book of Ra” e il gioco di carte “Jacks or Better”. Non serve effettuare alcun deposito, puoi giocare gratuitamente e divertirti senza limiti.
Non perdere l’occasione di allenarti e migliorare le tue abilità di gioco, prima di passare ai tavoli con soldi veri. Entra nella nostra community di appassionati di casinò e goditi l’emozione del gioco d’azzardo in tutta sicurezza.
Non dimenticare di controllare regolarmente la nostra app, poiché vengono aggiunti continuamente nuovi giochi e promozioni. Scarica subito la nostra app e inizia a giocare gratuitamente ai giochi più popolari del casinò WinBay Italia!

Gioca Gratuitamente al Casinò Online WinBay: La Migliore App per il Gioco in Italia

Come Iniziare a Giocare al Casinò Online WinBay: Una Guida Passo-Passo

Se sei pronto a iniziare la tua avventura nel mondo del casinò online, WinBay è una scelta eccellente. Ecco una guida passo-passo per iniziare:
1. Crea un conto su WinBay, fornendo le informazioni personali richieste.
2. Effettua un deposito utilizzando uno dei metodi di pagamento supportati, come carte di credito o portafogli elettronici.
3. Esplora il catalogo di giochi di WinBay, che include slot machine, giochi da tavolo e molto altro.
4. Scegli il gioco che preferisci e inizia a giocare, ricordandoti di stabilire un budget e di giocare in modo responsabile.
5. Se hai bisogno di assistenza, contatta il servizio clienti di WinBay, disponibile 24 ore su 24, 7 giorni su 7.

WinBay Casino: Perché È Considerata la Migliore App per il Gioco in Italia?

WinBay Casino è considerata la migliore app per il gioco in Italia per una serie di motivi. In primo luogo, offre una vasta gamma di giochi da casinò, tra cui slot machine, blackjack, roulette e poker. In secondo luogo, l’app è facile da usare e offre un’esperienza di gioco fluida e senza interruzioni. In terzo luogo, WinBay Casino è autorizzata e regolamentata dalle autorità italiane, il che significa che i giocatori possono essere sicuri che i loro fondi sono al sicuro e che i giochi sono equi. In quarto luogo, l’app offre bonus e promozioni generose, tra cui giri gratuiti e bonus di deposito. Infine, WinBay Casino ha un team di assistenza clienti dedicato e reattivo, disponibile 24 ore su 24, 7 giorni su 7, per aiutare i giocatori con qualsiasi domanda o problema che potrebbero avere.

Mi chiamo Marco, ho 35 anni e sono un appassionato di giochi da casinò. Da qualche tempo ho scoperto WinBay e devo ammettere che è diventata la mia app di riferimento per il gioco online in Italia. La grafica è accattivante, la selezione di giochi è ampia e la possibilità di Gioca Gratuitamente al Casinò Online WinBay è semplicemente fantastica! Consiglio vivamente WinBay a chiunque voglia divertirsi e vincere senza rischiare il proprio denaro.

Ciao, sono Claudia e ho 28 anni. Sono una fanatica delle slot machine e ho provato molte app di casinò online, ma nessuna mi ha entusiasmato come WinBay. La cosa che mi piace di più è la facilità d’uso e la varietà di giochi disponibili. Inoltre, la funzione Gioca Gratuitamente al Casinò Online WinBay è perfetta per chi, come me, vuole provare nuove slot machine senza spendere soldi. Lo consiglio a tutti!

Vuoi sapere di più su Gioca Gratuitamente al Casinò Online WinBay: La Migliore App per il Gioco in Italia? Ecco alcune risposte alle tue domande:

1. Che cos’è Gioca Gratuitamente al Casinò Online WinBay? Si tratta di un’app di gioco online gratuita, considerata la migliore in Italia per il suo ampio catalogo di giochi e la sua eccellente grafica.

2. Quali giochi sono disponibili su Gioca Gratuitamente al Casinò Online WinBay? L’app offre una vasta gamma di giochi, tra cui slot machine, blackjack, roulette e poker.

3. Posso vincere soldi veri su Gioca Gratuitamente al Casinò Online WinBay? No, l’app è solo per il gioco gratuito e non offre la possibilità di vincere denaro reale.

4. Gioca Gratuitamente al Casinò Online WinBay è sicuro da usare? Sì, l’app utilizza la crittografia SSL per proteggere le tue informazioni personali e finanziarie, garantendo una piattaforma di gioco sicura e affidabile.

Design and Develop by Ovatheme